//引入菜单的接口方法
import { Message } from "element-ui";
import { specslist, allSpecs } from "../../request/api";

export default {
    state: {
        specsList: [],//这是specs的初始数组
        is: {//判断是否显示dialog 弹窗
            show: false
        },
        total: 1, //这是页码总数
        pageNum: 1,//这是页码数
        pageSize: 5,//这是条数
    },
    getters: {},
    mutations: {
        //修改specs数据 初始数据
        REQ_SPECS(state, payload) {
            state.specsList = payload;
        },

        //修改dialog弹窗
        changeDialog(state, payload) {
            state.is.show = payload;
        },

        //计算页码总数
        toTal(state, payload) {
            state.total = payload;
        },

        //修改page
        changePage(state, payload) {
            state.pageNum = payload;
        }
    },
    actions: {
        //异步操作 获取数据 specs
        getSpecs(context, payload = false) {
            if (payload) {
                //获取数据 接口
                specslist().then(res => {
                    context.commit('REQ_SPECS', res.list);
                });
                return;
            }
            //获取数据 接口
            specslist({ page: context.state.pageNum, size: context.state.pageSize }).then(res => {
                if (res.code == 200) {
                    //解决删除的bug
                    let list = res.list ? res.list : [];
                    if (context.state.pageNum != 1 && list.length == 0) {
                        //调用切换页码的方法
                        context.dispatch('getPage', context.state.pageNum - 1);
                    };
                    context.commit('REQ_SPECS', res.list);
                };
            });
            //重新获取总数
            context.dispatch('getTotal');
        },

        //获取商品规格 页码总数
        getTotal({ commit }) {
            //获取页码总数的接口
            allSpecs().then(res => {
                if (res.code == 200) {
                    commit('toTal', res.list[0].total);
                };
            });
        },

        //修改页码 重新获取数据
        getPage(context, payload) {
            context.commit('changePage', payload);
            //重新获取页码修改后的数据
            context.dispatch('getSpecs');
        }

    },
    namespaced: true
}